![วิธีการรันคำสั่งจาก Management Console โดยไม่ต้องเข้า Windows](https://devio2023-media.developers.io/wp-content/uploads/2019/05/aws-systems-manager-ssm.png)
วิธีการรันคำสั่งจาก Management Console โดยไม่ต้องเข้า Windows
ครั้งนี้จะมาแนะนำวิธีการรันคำสั่งจาก Management Console โดยไม่ต้องเข้า Windows โดยมีหัวข้อดังนี้
- การสร้าง Role ใน IAM
- การสร้าง Key Pair
- การสร้าง Microsoft Windows Server 2019 Base
- Elastic IP (EIP)
- การ Connect to Instance เพื่อเข้าใช้งาน Windows ผ่านไฟล์ RDP
- การ Run Command ใน Systems Manager
- การ Run Command ผ่าน PowerShell Script ใน Systems Manager
- สรุป
- บทความที่เกี่ยวข้อง
การสร้าง Role ใน IAM
มาที่ค้นหา?︎ IAM
» เลือกIAM
เลือกRoles
คลิกCreate role
การตั้งค่า Step 1 : Select trusted entity นี้คือ:
Trusted entity type
» เลือกAWS service
Use case
» Common use cases:EC2
» คลิกNext
การตั้งค่า Step 2 : Add permissions นี้คือ:
Add permissions
» ค้นหา Permissions policies:?︎ AmazonSSMManagedInstanceCore
+ Enter
» Check✅
ที่ชื่อ AmazonSSMManagedInstanceCore
» คลิกNext
การตั้งค่า Step 3 : Name, review, and create นี้คือ:
» Role name:tinnakorn-win-shutdown-ec2-role
(ชื่ออะไรก็ได้)
เลื่อนลงมาด้านล่างสุด คลิกCreate role
ค้นหาชื่อ Role ที่สร้างไปเมื่อสักครู่นี้:?︎ tinnakorn-win-shutdown-ec2-role
+ Enter
จากนั้นคลิกที่ Role name ของเราเพื่อตรวจสอบข้อมูลการตั้งค่าได้เลย
การสร้าง Key Pair, Instance, Elastic IP ใน EC2
※ในส่วนถัดไปจะเป็นส่วนของ EC2 โดยจะทำการสร้าง Key Pair, Instance Microsoft Windows Server 2019 Base และ Elastic IP (EIP)
ถ้าเราต้องการสร้าง Instance อะไรก็แล้วแต่ ต้องสร้าง Key Pair ก่อนเสมอ
มาที่ค้นหา?︎ EC2
» เลือกEC2
จากนั้นเลือกฟังก์ชันที่ต้องการใช้งาน ในตัวอย่างนี้คือ Key Pairs, Instances และ Elastic IP
การสร้าง Key Pair
การสร้าง Key Pair นี้ ต้องสร้างขึ้นเพื่อนำไปใช้ในการสร้าง Instance
คลิกKey Pairs
คลิกCreate key pair
การสร้าง Key pair นี้คือ:
» Name:tinnakorn-win-shutdown
(ชื่ออะไรก็ได้)
» เลือก Private key file format:⚫ .pem
» คลิกCreate key pair
เมื่อคลิก Create key pair แล้ว ไฟล์.pem
จะถูกดาวน์โหลดอัตโนมัติ
จากนั้นลองหาชื่อ key pair ของเรา
การสร้าง Microsoft Windows Server 2019 Base
เมื่อสร้าง Key pair เสร็จแล้ว ทำการสร้าง Windows Instance ได้เลย
คลิกInstance
คลิกLaunch instances
Step 1: Choose an Amazon Machine Image (AMI) คือ Instance จะมีเซิร์ฟเวอร์ให้เลือกใช้มากมาย เช่น macOS, Red Hat, SUSE Linux, Ubuntu, Microsoft Windows, Debian เป็นต้น ซึ่งในบทความนี้จะใช้ Microsoft Windows Server 2019 Base ในการติดตั้ง
» คลิกSelect
Step 2: Choose an Instance Type คือ เราสามารถเลือก Type CPU Memory ที่จะนำไปใช้งานได้ตามความต้องการ ไม่ว่าเว็บไซต์จะมีขนาดเล็กหรือขนาดใหญ่ ก็สามารถเลือกขนาดความจุของ CPU Memory ได้ตามความเหมาะสม
» เลือก ■ Family =>t3a
| Type =>t3a.medium
| vCPUs =>2
| Memory =>4
(สามารถเลือกใช้งานได้ตามความต้องการ)
» คลิกNext: Configure Instance Details
Step 3: Configure Instance Details
» เลื่อนลงมาประมาณตรงกลางที่หัวข้อ IAM role แล้วเลือกชื่อ role ของเรา เช่นtinnakorn-win-shutdown-ec2-role
» คลิกNext: Add Storage
Step 4: Add Storage คือ ในส่วนของ Size (GiB) เราสามารถเพิ่ม Storage ได้ โดยค่าเริ่มต้นจะเป็น 30GB
» คลิกNext: Add Tags
Step 5: Add Tags » คือ การเพิ่มชื่อของ Tag ที่ต้องการใช้งาน
» คลิกAdd Tag
เพิ่ม Tag ตามนี้
» Key:Name
» Value:tinnakorn-win-shutdown
(ใส่ชื่ออะไรก็ได้)
» คลิกNext: Configure Security Group
Step 6: Configure Security Group คือ การตั้งค่า My IP เพื่อจำกัดการเชื่อมต่อ RDP จากทุกตำแหน่ง ซึ่งในส่วนนี้จะทำให้สามารถเชื่อมต่อ RDP จาก My IP (ที่อยู่ IP ปัจจุบันของคุณ) ได้เท่านั้น
» เปลี่ยนชื่อ Security group name เพื่อไม่ให้สับสนกับผู้ใช้ของคนอื่น เช่นtinnakorn-win-shutdown
(ค่าเริ่มต้นจะเป็นชื่อlaunch-wizard-1
)
» เลือก Source:My IP
» คลิกReview and Launch
Step 7: Review Instance Launch
» เลื่อนลงมาด้านล่างสุด เลือกหัวข้อ▶ Instance Details
» เลื่อนลงมาที่หัวข้อIAM role: tinnakorn-win-shutdown-ec2-role
(นี่คือ role ที่เลือกไว้ก่อนหน้านี้)
» คลิกLaunch
ในส่วนของ Popup ให้ทำตามขั้นตอนด้านล่าง
» Select a key pair:tinnakorn-win-shutdown | RSA
(ให้เลือก key pair ที่สร้างไว้ตอนแรก key pair)
» คลิก ☑ Checkbox
» คลิกLaunch Instances
ถ้ามีข้อความแจ้งเตือนสีเขียวเหมือนรูปภาพด้านล่างนี้ เท่ากับว่าการสร้าง Instance เสร็จสิ้น
จากนั้นให้คลิกView Instances
หลังจากสร้าง Instance เสร็จแล้ว ให้สังเกตที่ Status Checks จะเห็นว่ามีสถานะเป็น? Initializing
คือ Instance กำลังสตาร์ทระบบขึ้นมานั่นเอง
เมื่อ Instance มีสถานะเป็น✅ 2/2 checks passed
การสร้าง Instance ก็เสร็จสมบูรณ์
เมื่อสร้าง Instance เสร็จเรียบร้อยแล้ว ขั้นตอนต่อไปจะเป็นการเชื่อมโยง Elastic IP เข้ากับ EC2 Instance เพื่อไม่ให้ IP ของ Instance เกิดการเปลี่ยนแปลง
การสร้าง Elastic IP (EIP)
เลือกElastic IPs
คลิกAllocate Elastic IP address
คลิกAdd new tag
» Key:Name
» Value-optional:tinnakorn-win-shutdown
(ใส่ชื่อ Tag ตามต้องการ หรือจะใช้ชื่อเดียวกับ Instance ก็ได้)
» คลิกAllocate
เมื่อสร้าง EIP เสร็จแล้ว ต่อไปจะทำการเชื่อมโยง EIP เข้ากับ EC2 Instance ดังนี้
» คลิกActions ▼
» เลือกAssociate Elastic IP address
เลือก Instance ตามนี้
» คลิกChoose an instance
ในช่องสีฟ้า แล้วเลือก Instance ของเราที่มีสถานะ running เท่านั้น เช่นi-***************** (tinnakorn-win-shutdown) - running
» คลิกAssociate
การเชื่อมโยง IP เสร็จเรียบร้อยแล้ว ต่อไปจะตรวจสอบ IP ที่หน้า Elastic IP และหน้า Instance
» คลิกที่Allocated IPv4 address
ของเราตามรูป
หน้า Elastic IP
ให้ดูที่ Allocated IPv4 address นี้จะเหมือนกับ Public IPv4 address ของ Instance
หน้า Instance
ให้ดูที่ Public IPv4 address ของ Instance จะเห็นว่า IP จะถูกเปลี่ยนไปตาม Allocated IPv4 address ของ Elastic IP
การ Connect to Instance เพื่อเข้าใช้งาน Windows ผ่านไฟล์ RDP
คลิกInstance ID
ของเรา
คลิกConnect
ในส่วนของConnect to instance
จะเป็นการ Download remote desktop file และ Get password
» เลือกหัวข้อRDP client
» คลิกDownload remote desktop file
แล้วตัวไฟล์จะถูกดาวน์โหลดมาที่คอมพิวเตอร์และเป็นชื่อตาม Instance ของเราโดยอัตโนมัติ
คลิกGet password
ในส่วนของ Get Windows password ต้องรอประมาณ 5 นาทีจนกว่าการเริ่มต้นระบบของ Windows จะเสร็จสมบูรณ์ จึงจะสามารถทำขั้นตอนถัดไปได้
คลิกBrowse
(เป็นการเพิ่มไฟล์.pem
เข้ามายัง Instance เพื่อ Generate Password ขึ้นมา)
มาที่ไฟล์.pem
ที่ได้มาจากการสร้าง Key pair (ของผมจะเป็นชื่อtinnakorn-win-shutdown.pem
) จากนั้นคลิกOpen
คลิกDecrypt Password
จะเห็นว่ามี Password ขึ้นมาแล้ว
กลับมาที่ไฟล์remote desktop
หรือไฟล์.rdp
ที่ดาวน์โหลดมาจาก Instance ของเรา (ของผมจะเป็นชื่อtinnakorn-win-shutdown.rdp
) จากนั้นดับเบิ้ลคลิกที่ไฟล์ได้เลย
คลิกConnect
ในส่วนนี้เราต้องใส่ Password ที่ Generate ใน Instance เมื่อสักครู่นี้
กลับมาที่ Connect to Instance ของเรา จากนั้น Copy Password ตามรูปได้เลย
นำ Password ที่ Copy มาจาก Instance แล้ววางในช่อง Administrator เพื่อ Login เข้ามาใน Windows Server
คลิกYes
เมื่อทำการ Login เข้ามาแล้ว ก็จะมีหน้าตาเป็น Windows Server 2019 เหมือนกับรูปด้านล่าง
การ Run Command ใน Systems Manager
ก่อนอื่นให้อัปเดต SSM Agent ถ้าไม่ทำการอัปเดต Run Command ก็จะไม่ทำงาน
มาที่ค้นหา?︎ Systems Manager
» เลือกSystems Manager
เลือกRun Command
คลิกRun command
ค้นหา?︎ AWS-UpdateSSMAgent
+ Enter จากนั้นคลิกที่⚫ AWS-UpdateSSMAgent
กลับมาที่หน้า Instance คลิก❐ Instance ID
เพื่อ Copy แล้วนำไปเก็บไว้ที่ Notepad
กลับมาที่ AWS Systems Manager > Run Command
การตั้งค่า Targets ในตัวอย่างนี้คือ:
» เลือก⚫ Choose instances manually
» ค้นหา Instances ID ของเรา เช่น?︎ i-*****************
» Check✅ i-*****************
ที่ Instance ID ของเรา
ในส่วนของ Output options นี้ แค่ Uncheck☐ Enable an S3 bucket
ออก
เลื่อนมาด้านล่างสุด คลิกRun
เมื่อมาหน้านี้แล้ว รอสักครู่จนกว่า In Progress จะเป็น Success
เมื่อขึ้น Success การตั้งค่านี้ก็เสร็จสมบูรณ์
การ Run Command ผ่าน PowerShell Script ใน Systems Manager
ในขั้นตอนนี้เป็นตัวอย่างการรันคำสั่ง "shutdown"
มาที่ค้นหา?︎ Systems Manager
» เลือกSystems Manager
เลือกRun Command
คลิกRun command
ค้นหา?︎ AWS-RunPowerShellScript
+ Enter จากนั้นคลิกที่⚫ AWS-RunPowerShellScript
ในส่วนของ Command parameters นี้ เราสามารถกำหนดเวลาที่ต้องการ Shutdown Windows ได้โดยเราต้องใส่ค่าเวลาเป็นวินาที สามารถคำนวณได้ง่ายๆ ดังนี้
・3600 วินาที = 1 ชั่วโมง
・1800 วินาที = 30 นาที
・900 วินาที = 15 นาที
・600 วินาที = 10 นาที
・300 วินาที = 5 นาที
・60 วินาที = 1 นาที
ในตัวอย่างนี้จะสาธิตแค่เวลา 20 วินาที ให้ใส่คำสั่งตามนี้และกำหนดเวลาของคุณเอง
Shutdown /s /t 20
กลับมาที่หน้า Instance คลิก❐ Instance ID
เพื่อ Copy แล้วนำไปเก็บไว้ที่ Notepad
กลับมาที่ AWS Systems Manager > Run Command
การตั้งค่า Targets ในตัวอย่างนี้คือ:
» เลือก⚫ Choose instances manually
» ค้นหา Instances ID ของเรา เช่น?︎ i-*****************
» Check✅ i-*****************
ที่ Instance ID ของเรา
ในส่วนของ Output options นี้ แค่ Uncheck☐ Enable an S3 bucket
ออก
เลื่อนมาด้านล่างสุด คลิกRun
เมื่อมาหน้านี้แล้ว รอสักครู่จนกว่า In Progress จะเป็น Success
เมื่อขึ้น Success การตั้งค่านี้ก็เสร็จสมบูรณ์
มาดูที่ Windows จะมีแจ้งเตือนขึ้นมาเกี่ยวกับการ Shutdown เมื่อถึงเวลาที่กำหนดไว้ ตัวระบบจะ Shutdown ให้โดยอัตโนมัติ
กลับมาที่หน้า Instance อีกครั้ง แล้วดูที่ Instance state เมื่อ Shutdown แล้วจะมีสถานะเป็นStopped
การ Run Command อื่นๆ ผ่าน PowerShell Script ใน Systems Manager
สำหรับตัวอย่างการรันคำสั่งอื่นๆ ก็สามารถทำได้เช่นกันดังนี้
คำสั่งหยุดใช้บริการใน Windows
net stop [service name]
คำสั่งเริ่มใช้บริการใน Windows
net start [service name]
คำสั่งสำรองไฟล์
robocopy [distination]
สรุป
การสาธิตนี้เป็นการ Shutdown ระบบปฏิบัติการของ Microsoft Windows Server 2019 Base โดยทำการตั้งค่าและส่งคำสั่งจาก AWS Systems Manager ไปที่ Windows PowerShell เมื่อถึงเวลาที่ตั้งค่าไว้ Windows ก็จะ Shutdown โดยอัตโนมัติ
นอกจากนี้เรายังสามารถรันคำสั่งอื่นๆ ได้ เช่น คำสั่งการหยุดใช้บริการใน Windows, คำสั่งการเริ่มใช้บริการใน Windows, คำสั่งการสำรองข้อมูลใน Windows ผ่าน PowerShellScrip และคำสั่งอื่นๆ อีกมากมาย เป็นต้น